﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace SlamDunk.CMS.IDAL
{
    /// <summary>
    /// Article数据接口层接口（手写部分接口）
    /// </summary>
    public partial interface IArticleDal
    {
        #region 01.根据栏目Id获取文章列表
        /// <summary>
        /// 根据栏目Id获取文章列表
        /// </summary>
        /// <param name="channelId">栏目Id</param>
        /// <returns>文章列表</returns>
        List<Model.Article> GetModelList(int channelId);
        #endregion

        #region 02.获取上一篇文章
        /// <summary>
        /// 获取上一篇文章
        /// </summary>
        /// <param name="id">文章Id</param>
        /// <param name="channelId">栏目Id</param>
        /// <returns>文章实体对象</returns>
        Model.Article GetPrevModel(int id, int channelId);
        #endregion

        #region 03.获取下一篇文章
        /// <summary>
        /// 获取下一篇文章
        /// </summary>
        /// <param name="id">文章Id</param>
        /// <param name="channelId">栏目Id</param>
        /// <returns>文章实体对象</returns>
        Model.Article GetNextModel(int id, int channelId);
        #endregion

        #region 04.根据栏目Id、开始时间、结束时间与标题关键字查询文章记录条数
        /// <summary>
        /// 根据栏目Id、开始时间、结束时间与标题关键字查询文章记录条数
        /// </summary>
        /// <param name="channelId">栏目Id</param>
        /// <param name="startTime">开始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <param name="title">标题关键字</param>
        /// <returns>符合条件的文章记录条数</returns>
        int GetCount(int channelId, string startTime, string endTime, string title);
        #endregion

        #region 05.根据栏目Id、开始时间、结束时间与标题关键字分页查询文章列表
        /// <summary>
        /// 根据栏目Id、开始时间、结束时间与标题关键字查询文章列表
        /// </summary>
        /// <param name="start">起始行</param>
        /// <param name="end">结束行</param>
        /// <param name="channelId">栏目Id</param>
        /// <param name="startTime">开始时间</param>
        /// <param name="endTime">结束时间</param>
        /// <param name="title">标题关键字</param>
        /// <returns>文章列表</returns>
        List<Model.Article> GetModelList(int start, int end, int channelId, string startTime, string endTime, string title);
        #endregion

        #region 06.根据栏目Id获取文章记录条数
        /// <summary>
        /// 根据栏目Id获取文章记录条数
        /// </summary>
        /// <param name="channelId">栏目Id</param>
        /// <returns>符合条件的文章记录条数</returns>
        int GetCount(int channelId);
        #endregion

        #region 07.根据栏目Id分页查询文章列表
        /// <summary>
        /// 根据栏目Id分页查询文章列表
        /// </summary>
        /// <param name="start">起始行</param>
        /// <param name="end">终止行</param>
        /// <param name="channelId">栏目Id</param>
        /// <returns>文章列表</returns>
        List<Model.Article> GetModelList(int start, int end, int channelId);
        #endregion

        #region 08.根据栏目Id与数量查询文章列表
        /// <summary>
        /// 根据栏目Id与数量查询文章列表
        /// </summary>
        /// <param name="channelId">栏目Id</param>
        /// <param name="count">数量</param>
        /// <returns>文章列表</returns>
        List<Model.Article> GetModelListByCount(int channelId, int count);
        #endregion
    }
}
